//-----------------------------------------------------------------------
// <copyright file="ArcoreClearcut.cs" company="Google LLC">
//
// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
// </copyright>
//-----------------------------------------------------------------------

// <auto-generated>
//     Generated by the protocol buffer compiler.  DO NOT EDIT!
//     source: arcore_clearcut.proto
// </auto-generated>
#pragma warning disable 1591, 0612, 3021
#region Designer generated code

using pb = global::Google.Protobuf;
using pbc = global::Google.Protobuf.Collections;
using pbr = global::Google.Protobuf.Reflection;
using scg = global::System.Collections.Generic;
namespace GoogleARCoreInternal.Proto {

  public static partial class ArcoreClearcutReflection {

    #region Descriptor
    public static pbr::FileDescriptor Descriptor {
      get { return descriptor; }
    }
    private static pbr::FileDescriptor descriptor;

    static ArcoreClearcutReflection() {
      byte[] descriptorData = global::System.Convert.FromBase64String(
          string.Concat(
            "ChVhcmNvcmVfY2xlYXJjdXQucHJvdG8SEWNvbS5nb29nbGUuYXJjb3JlIo4C",
            "CghMb2dFdmVudBIVCg1ldmVudF90aW1lX21zGAEgASgDEhcKD2V2ZW50X3Vw",
            "dGltZV9tcxgRIAEoAxIYChBzb3VyY2VfZXh0ZW5zaW9uGAYgASgMEiUKG3Rp",
            "bWV6b25lX29mZnNldF9zZWNvbmRzX3ZhbBgPIAEoEkgAQhkKF3RpbWV6b25l",
            "X29mZnNldF9zZWNvbmRzSgQIFRAWSgQIAhADSgQICxAMSgQIDBANSgQIChAL",
            "SgQIAxAESgQIBBAFSgQICRAKSgQICBAJSgQIDRAOSgQIBxAISgQIDhAPSgQI",
            "EBARSgQIEhATSgQIGBAZSgQIExAUSgQIFBAVSgQIFhAXSgQIFxAYSgQIGRAa",
            "ItSDAQoKTG9nUmVxdWVzdBIXCg9yZXF1ZXN0X3RpbWVfbXMYBCABKAMSGQoR",
            "cmVxdWVzdF91cHRpbWVfbXMYCCABKAMSQQoObG9nX3NvdXJjZV92YWwYAiAB",
            "KA4yJy5jb20uZ29vZ2xlLmFyY29yZS5Mb2dSZXF1ZXN0LkxvZ1NvdXJjZUgA",
            "Ei4KCWxvZ19ldmVudBgDIAMoCzIbLmNvbS5nb29nbGUuYXJjb3JlLkxvZ0V2",
            "ZW50Is2BAQoJTG9nU291cmNlEgkKBVNUT1JFEAASFAoHVU5LTk9XThD/////",
            "//////8BEhgKE0JBVENIRURfTE9HX1JFUVVFU1QQ5QISDQoJV0VCX1NUT1JF",
            "EEESDwoKV09SS19TVE9SRRCEARITCg5XT1JLX1NUT1JFX0FQUBCFAhINCglF",
            "RFVfU1RPUkUQDxIJCgVNVVNJQxABEgkKBUJPT0tTEAISCQoFVklERU8QAxIK",
            "CgZNT1ZJRVMQShINCglNQUdBWklORVMQBBIJCgVHQU1FUxAFEggKBExCX0EQ",
            "BhITCgtBTkRST0lEX0lERRAHGgIIARIICgRMQl9QEAgSCAoETEJfUxAJEgwK",
            "CEdNU19DT1JFEAoSEAoMQVBQX1VTQUdFXzFQEAsSCQoFSUNJTkcQDBIMCghI",
            "RVJSRVZBRBANEg0KCUdPT0dMRV9UVhAOEhMKD0dNU19DT1JFX1BFT1BMRRAQ",
            "EgYKAkxFEBESFAoQR09PR0xFX0FOQUxZVElDUxASEggKBExCX0QQExIPCgtB",
            "TkRST0lEX0dTQRAUEggKBExCX1QQFRIXCg9QRVJTT05BTF9MT0dHRVIQFhoC",
            "CAESHwoXUEVSU09OQUxfQlJPV1NFUl9MT0dHRVIQJRoCCAESIgoeR01TX0NP",
            "UkVfV0FMTEVUX01FUkNIQU5UX0VSUk9SEBcSCAoETEJfQxAYEgkKBUxCX0lB",
            "EDQSDgoFTEJfQ0IQ7QEaAggBEg4KBUxCX0RNEIwCGgIIARIJCgRDTF9DEO0D",
            "EgoKBUNMX0RNEO4DEhAKDEFORFJPSURfQVVUSBAZEhIKDkFORFJPSURfQ0FN",
            "RVJBEBoSBgoCQ1cQGxIQCgtDV19DT1VOVEVSUxDzARIHCgNHRUwQHBIOCgpE",
            "TkFfUFJPQkVSEB0SCwoDVURSEB4aAggBEhMKD0dNU19DT1JFX1dBTExFVBAf",
            "EgoKBlNPQ0lBTBAgEhIKDklOU1RPUkVfV0FMTEVUECESCAoETk9WQRAiEg0K",
            "BUxCX0NBECMaAggBEg0KCUxBVElOX0lNRRAkEhAKDE5FV1NfV0VBVEhFUhAm",
            "EiAKG05FV1NfV0VBVEhFUl9BTkRST0lEX1BSSU1FUxDKAxIcChdORVdTX1dF",
            "QVRIRVJfSU9TX1BSSU1FUxDLAxILCgdIQU5HT1VUECcSFwoTSEFOR09VVF9M",
            "T0dfUkVRVUVTVBAyEg4KCkNPUFJFU0VOQ0UQKBITCg9TT0NJQUxfQUZGSU5J",
            "VFkQKRIbChZTT0NJQUxfQUZGSU5JVFlfUEhPVE9TENEDEhoKFVNPQ0lBTF9B",
            "RkZJTklUWV9HTUFJTBCDBBIaChVTT0NJQUxfQUZGSU5JVFlfSU5CT1gQhAQS",
            "GQoUU09DSUFMX0FGRklOSVRZX0FQREwQwwUSGAoTUEVPUExFX0FVVE9DT01Q",
            "TEVURRC+BBIMCgdTRU5ES0lUEPAEEh8KGlBFT1BMRV9BVVRPQ09NUExFVEVf",
            "Q0xJRU5UEPEEEgoKBlBIT1RPUxAqEgcKA0dDTRArEgoKBkdPS0FSVBAsEgkK",
            "BUZJTkRSEC0SFQoRQU5EUk9JRF9NRVNTQUdJTkcQLhITCg5CVUdMRV9DT1VO",
            "VEVSUxDDAhIOCgpTT0NJQUxfV0VCEC8SDAoIQkFDS0RST1AQMBIOCgpURUxF",
            "TUFUSUNTEDESEQoNR1ZDX0hBUlZFU1RFUhAzEgcKA0NBUhA1EhEKDVBJWEVM",
            "X1BFUkZFQ1QQNhIJCgVEUklWRRA3EggKBERPQ1MQOBIKCgZTSEVFVFMQORIK",
            "CgZTTElERVMQOhIHCgNJTUUQOxIICgRXQVJQEDwSEgoOTkZDX1BST0dSQU1N",
            "RVIQPRIMCghORVRTVEFUUxA+Eg0KCU5FV1NTVEFORBA/EhUKEUtJRFNfQ09N",
            "TVVOSUNBVE9SEEASEgoOV0lGSV9BU1NJU1RBTlQQQhIaChVXSUZJX0FTU0lT",
            "VEFOVF9QUklNRVMQxgISHAoXV0lGSV9BU1NJU1RBTlRfQ09VTlRFUlMQxQUS",
            "EwoPQ0FTVF9TRU5ERVJfU0RLEEMSEQoNQ1JPTkVUX1NPQ0lBTBBEEg0KCVBI",
            "RU5PVFlQRRBFEhYKElBIRU5PVFlQRV9DT1VOVEVSUxBGEhAKDENIUk9NRV9J",
            "TkZSQRBHEg0KCUpVU1RTUEVBSxBIEhAKDFBFUkZfUFJPRklMRRBJEgsKB0tB",
            "VE5JU1MQSxIUChBTT0NJQUxfQVBQSU5WSVRFEEwSEAoMR01NX0NPVU5URVJT",
            "EE0SEgoOQk9ORF9PTkVHT09HTEUQThIMCghNQVBTX0FQSRBPEhYKEUNST05F",
            "VF9BTkRST0lEX1lUEMQBEhYKEkNST05FVF9BTkRST0lEX0dTQRBQEhcKE0dP",
            "T0dMRV9GSVRfV0VBUkFCTEUQURIUCg9GSVRORVNTX0FORFJPSUQQqQESFQoQ",
            "RklUTkVTU19HTVNfQ09SRRCqARISCg5HT09HTEVfRVhQUkVTUxBSEhwKF0dP",
            "T0dMRV9FWFBSRVNTX0NPVU5URVJTEJ8FEhcKEkdPT0dMRV9FWFBSRVNTX0RF",
            "VhDXARIqCiVHT09HTEVfRVhQUkVTU19DT1VSSUVSX0FORFJPSURfUFJJTUVT",
            "EOQBEiIKHUdPT0dMRV9FWFBSRVNTX0FORFJPSURfUFJJTUVTEOUBEh4KGUdP",
            "T0dMRV9FWFBSRVNTX0lPU19QUklNRVMQ9gISKwomR09PR0xFX0VYUFJFU1Nf",
            "U1RPUkVPTVNfQU5EUk9JRF9QUklNRVMQ8AESCQoFU0VOU0UQUxISCg5BTkRS",
            "T0lEX0JBQ0tVUBBUEgYKAlZSEFUSEAoMSU1FX0NPVU5URVJTEFYSEAoMU0VU",
            "VVBfV0laQVJEEFcSFAoQRU1FUkdFTkNZX0FTU0lTVBBYEggKBFRST04QWRIR",
            "Cg1UUk9OX0NPVU5URVJTEFoSEQoNQkFUVEVSWV9TVEFUUxBbEg4KCkRJU0tf",
            "U1RBVFMQXBISCg5HUkFQSElDU19TVEFUUxBrEg4KClBST0NfU1RBVFMQXRIN",
            "CghEUk9QX0JPWBCDARIWChFGSU5HRVJQUklOVF9TVEFUUxC1ARIXChJOT1RJ",
            "RklDQVRJT05fU1RBVFMQtgESEwoOU0VUVElOR1NfU1RBVFMQhgMSDQoIU1RP",
            "UkFHRUQQmwQSFQoRVEFQX0FORF9QQVlfR0NPUkUQXhIOCgpBMTFZTE9HR0VS",
            "EF8SEAoMR0NNX0NPVU5URVJTEGASGQoVUExBQ0VTX05PX0dMU19DT05TRU5U",
            "EGESFwoTVEFDSFlPTl9MT0dfUkVRVUVTVBBiEhQKEFRBQ0hZT05fQ09VTlRF",
            "UlMQYxIPCgpEVU9fQ1JPTkVUEIwDEgoKBlZJU0lPThBkEhgKFFNPQ0lBTF9V",
            "U0VSX0xPQ0FUSU9OEGUSEgoOTEFVTkNIUEFEX1RPWVMQZhIUChBNRVRBTE9H",
            "X0NPVU5URVJTEGcSFAoQTU9CSUxFU0RLX0NMSUVOVBBoEhcKE0FORFJPSURf",
            "VkVSSUZZX0FQUFMQaRIMCghBRFNISUVMRBBqEgsKB1NIRVJMT0cQbBITCg9M",
            "RV9VTFJfQ09VTlRFUlMQbRILCgdHTU1fVUUzEG4SDAoIQ0FMRU5EQVIQbxIN",
            "CgVFTkRFUhBwGgIIARISCg5GQU1JTFlfQ09NUEFTUxBxEg8KB1RSQU5TT00Q",
            "choCCAESGAoQVFJBTlNPTV9DT1VOVEVSUxBzGgIIARIJCgVMQl9BUxB0EgoK",
            "BkxCX0NGRxB1EgsKB0lPU19HU0EQdhITCg9UQVBfQU5EX1BBWV9BUFAQdxId",
            "ChhUQVBfQU5EX1BBWV9BUFBfQ09VTlRFUlMQiQISEAoIRkxZRFJPSUQQeBoC",
            "CAESDgoKQ1BBTkVMX0FQUBB5EhYKEkFORFJPSURfU05FVF9HQ09SRRB6EhUK",
            "EUFORFJPSURfU05FVF9JRExFEHsSFAoQQU5EUk9JRF9TTkVUX0pBUhB8EhMK",
            "D0NPTlRFWFRfTUFOQUdFUhB9Eg0KCUNMQVNTUk9PTRB+Eg4KClRBSUxPUk1B",
            "REUQfxIJCgRLRUVQEIABEhcKEkdNTV9CUklJTV9DT1VOVEVSUxCBARIXChJD",
            "SFJPTUVDQVNUX0FQUF9MT0cQggESEwoOQURXT1JEU19NT0JJTEUQhQESIgod",
            "QURXT1JEU19NT0JJTEVfQU5EUk9JRF9QUklNRVMQ4AESHgoZQURXT1JEU19N",
            "T0JJTEVfSU9TX1BSSU1FUxCiBBITCg5MRUFOQkFDS19FVkVOVBCGARISCg1B",
            "TkRST0lEX0dNQUlMEIcBEg8KClNBTVBMRV9TSE0QiAESGQoUR1BMVVNfQU5E",
            "Uk9JRF9QUklNRVMQjAESJAobR1BMVVNfQU5EUk9JRF9TWVNURU1fSEVBTFRI",
            "EIwBGgIIARIZChRHTUFJTF9BTkRST0lEX1BSSU1FUxCWARIkChtHTUFJTF9B",
            "TkRST0lEX1NZU1RFTV9IRUFMVEgQlgEaAggBEhwKF0NBTEVOREFSX0FORFJP",
            "SURfUFJJTUVTEJcBEicKHkNBTEVOREFSX0FORFJPSURfU1lTVEVNX0hFQUxU",
            "SBCXARoCCAESGAoTRE9DU19BTkRST0lEX1BSSU1FUxCYARIjChpET0NTX0FO",
            "RFJPSURfU1lTVEVNX0hFQUxUSBCYARoCCAESHwoaWVRfTUFJTl9BUFBfQU5E",
            "Uk9JRF9QUklNRVMQmgESGwoWWVRfS0lEU19BTkRST0lEX1BSSU1FUxCbARId",
            "ChhZVF9HQU1JTkdfQU5EUk9JRF9QUklNRVMQnAESHAoXWVRfTVVTSUNfQU5E",
            "Uk9JRF9QUklNRVMQnQESGwoWWVRfTElURV9BTkRST0lEX1BSSU1FUxCeARIe",
            "ChlZVF9DUkVBVE9SX0FORFJPSURfUFJJTUVTEKsBEiAKG1lUX1VOUExVR0dF",
            "RF9BTkRST0lEX1BSSU1FUxDNBBIXChJKQU1fQU5EUk9JRF9QUklNRVMQnwES",
            "HQoYSkFNX0tJT1NLX0FORFJPSURfUFJJTUVTEKABEhoKFVBIT1RPU19BTkRS",
            "T0lEX1BSSU1FUxClARIZChREUklWRV9BTkRST0lEX1BSSU1FUxCmARIaChVT",
            "SEVFVFNfQU5EUk9JRF9QUklNRVMQpwESGgoVU0xJREVTX0FORFJPSURfUFJJ",
            "TUVTEKgBEhwKF1NOQVBTRUVEX0FORFJPSURfUFJJTUVTELIBEhwKF0hBTkdP",
            "VVRTX0FORFJPSURfUFJJTUVTELMBEhkKFElOQk9YX0FORFJPSURfUFJJTUVT",
            "ELQBEhUKEElOQk9YX0lPU19QUklNRVMQhgISEwoOU0RQX0lPU19QUklNRVMQ",
            "nwISGwoWR01TQ09SRV9BTkRST0lEX1BSSU1FUxDBARIjCh5QTEFZX01VU0lD",
            "X0FORFJPSURfV0VBUl9QUklNRVMQyAESLgopUExBWV9NVVNJQ19BTkRST0lE",
            "X1dFQVJfU1RBTkRBTE9ORV9QUklNRVMQowMSHAoXR0VBUkhFQURfQU5EUk9J",
            "RF9QUklNRVMQyQESHAoXSU5TVE9SRV9DT05TVU1FUl9QUklNRVMQzwESFgoR",
            "U0FNUExFX0lPU19QUklNRVMQygESGgoVQ1BBTkVMX0FORFJPSURfUFJJTUVT",
            "ENUBEhoKFUhVRERMRV9BTkRST0lEX1BSSU1FUxDWARIXChJBV1hfQU5EUk9J",
            "RF9QUklNRVMQ3gESFwoSR0hTX0FORFJPSURfUFJJTUVTEN8BEh8KGlRBUF9B",
            "TkRfUEFZX0FORFJPSURfUFJJTUVTEOMBEh4KGVdBTExFVF9BUFBfQU5EUk9J",
            "RF9QUklNRVMQ6AESGgoVV0FMTEVUX0FQUF9JT1NfUFJJTUVTEOkBEh0KGEFO",
            "QUxZVElDU19BTkRST0lEX1BSSU1FUxDrARIZChRBTkFMWVRJQ1NfSU9TX1BS",
            "SU1FUxCaBBIaChVTUEFDRVNfQU5EUk9JRF9QUklNRVMQ7AESFgoRU1BBQ0VT",
            "X0lPU19QUklNRVMQlAISGwoWU09DSUVUWV9BTkRST0lEX1BSSU1FUxDuARIZ",
            "ChBHTU1fQlJJSU1fUFJJTUVTEO8BGgIIARIOCglDV19QUklNRVMQ8gESEgoN",
            "Q1dfSU9TX1BSSU1FUxC7BRIeChlGQU1JTFlMSU5LX0FORFJPSURfUFJJTUVT",
            "EPQBEhoKFUZBTUlMWUxJTktfSU9TX1BSSU1FUxCjAhIOCglXSF9QUklNRVMQ",
            "+AESGAoTTk9WQV9BTkRST0lEX1BSSU1FUxD5ARIhChxQSE9UT1NfRFJBUEVS",
            "X0FORFJPSURfUFJJTUVTEP0BEg8KCkdNTV9QUklNRVMQ/gESHQoYVFJBTlNM",
            "QVRFX0FORFJPSURfUFJJTUVTEP8BEhkKFFRSQU5TTEFURV9JT1NfUFJJTUVT",
            "EIACEh0KGEZSRUlHSFRFUl9BTkRST0lEX1BSSU1FUxCDAhIgChdGTFlEUk9J",
            "RF9BTkRST0lEX1BSSU1FUxCDAhoCCAESFgoRQ09OU1VNRVJJUV9QUklNRVMQ",
            "hAISFwoSR01CX0FORFJPSURfUFJJTUVTEIcCEhQKD0NMT1VERFBDX1BSSU1F",
            "UxCwAhIYChNDTE9VRERQQ19BUkNfUFJJTUVTELECEgoKBUlDT1JFEIkBEhkK",
            "FFBBTkNFVFRBX01PQklMRV9IT1NUEIoBEiIKHVBBTkNFVFRBX01PQklMRV9I",
            "T1NUX0NPVU5URVJTEIsBEiAKF0NST1NTREVWSUNFTk9USUZJQ0FUSU9OEI0B",
            "GgIIARIkChtDUk9TU0RFVklDRU5PVElGSUNBVElPTl9ERVYQjgEaAggBEhYK",
            "EU1BUFNfQVBJX0NPVU5URVJTEI8BEggKA0dQVRCQARIOCglPTl9USEVfR08Q",
            "kQESFwoST05fVEhFX0dPX0NPVU5URVJTEJIBEh0KGE9OX1RIRV9HT19BTkRS",
            "T0lEX1BSSU1FUxDKAhIZChRPTl9USEVfR09fSU9TX1BSSU1FUxDwAhIhChxH",
            "TVNfQ09SRV9QRU9QTEVfQVVUT0NPTVBMRVRFEJMBEhoKEUZMWURST0lEX0NP",
            "VU5URVJTEJQBGgIIARINCghGSVJFQkFMTBCVARIWChFGSVJFQkFMTF9DT1VO",
            "VEVSUxCBAhIUCg9DUk9ORVRfRklSRUJBTEwQrwISFAoPRklSRUJBTExfUFJJ",
            "TUVTEIoCEhgKE0ZJUkVCQUxMX0lPU19QUklNRVMQuQISLAonR09PR0xFX0hB",
            "TkRXUklUSU5HX0lOUFVUX0FORFJPSURfUFJJTUVTELoCEhIKCVBZUk9DTEFT",
            "TRCZARoCCAESGQoUQU5EUk9JRF9HU0FfQ09VTlRFUlMQoQESFAoPSkFNX0lN",
            "UFJFU1NJT05TEKIBEhoKFUpBTV9LSU9TS19JTVBSRVNTSU9OUxCjARIRCgxQ",
            "QVlNRU5UU19PQ1IQpAESHgoZVU5JQ09STl9GQU1JTFlfTUFOQUdFTUVOVBCs",
            "ARIMCgdBVURJVE9SEK0BEg0KCE5RTE9PS1VQEK4BEiUKIEFORFJPSURfR1NB",
            "X0hJR0hfUFJJT1JJVFlfRVZFTlRTEK8BEhMKDkFORFJPSURfRElBTEVSELAB",
            "EhIKDUNMRUFSQ1VUX0RFTU8QsQESDwoKQVBQTUFOQUdFUhC3ARIXChJTTUFS",
            "VExPQ0tfQ09VTlRFUlMQuAESFgoRRVhQRURJVElPTlNfR1VJREUQuQESCQoE",
            "RlVTRRC6ARIqCiFQSVhFTF9QRVJGRUNUX0NMSUVOVF9TVEFURV9MT0dHRVIQ",
            "uwEaAggBEhwKF1BMQVRGT1JNX1NUQVRTX0NPVU5URVJTELwBEhEKDERSSVZF",
            "X1ZJRVdFUhC9ARIPCgpQREZfVklFV0VSEL4BEgsKBkJJR1RPUBC/ARIKCgVW",
            "T0lDRRDAARIMCgdNWUZJQkVSEMIBEhMKDlJFQ09SREVEX1BBR0VTEMMBEgwK",
            "B01PQl9ET0cQxQESDwoKV0FMTEVUX0FQUBDGARILCgZHQk9BUkQQxwESDwoK",
            "Q1JPTkVUX0dNTRDLARIRCgxUUlVTVEVEX0ZBQ0UQzAESDwoKTUFUQ0hTVElD",
            "SxDNARIYChNNQVRDSFNUSUNLX0NPVU5URVJTEPQCEhAKC0FQUF9DQVRBTE9H",
            "EM4BEg4KCUJMVUVUT09USBDQARIJCgRXSUZJENEBEgwKB1RFTEVDT00Q0gES",
            "DgoJVEVMRVBIT05ZENMBEhYKEUlERU5USVRZX0ZST05URU5EENQBEh8KGklE",
            "RU5USVRZX0ZST05URU5EX0VYVEVOREVEEK4EEgsKBlNFU0FNRRDYARIcChdH",
            "T09HTEVfS0VZQk9BUkRfQ09OVEVOVBDZARILCgZNQURERU4Q2gESCAoDSU5L",
            "ENsBEhUKEEFORFJPSURfQ09OVEFDVFMQ3AESHQoYR09PR0xFX0tFWUJPQVJE",
            "X0NPVU5URVJTEN0BEhQKD0NMRUFSQ1VUX1BST0JFUhDhARIVChBQTEFZX0NP",
            "TlNPTEVfQVBQEOIBEhwKF1BMQVlfQ09OU09MRV9BUFBfUFJJTUVTEIgCEicK",
            "IlBMQVlfQ09OU09MRV9BUFBfRkVBVFVSRV9BTkFMWVRJQ1MQ+wMSDQoIU1BF",
            "Q1RSVU0Q5gESFgoRU1BFQ1RSVU1fQ09VTlRFUlMQ5wESHAoXU1BFQ1RSVU1f",
            "QU5EUk9JRF9QUklNRVMQiwISIQocSU9TX1NQT1RMSUdIVF9TRUFSQ0hfTElC",
            "UkFSWRDqARIMCgdCT1FfV0VCEPEBEhkKFE9SQ0hFU1RSQVRJT05fQ0xJRU5U",
            "EPUBEh0KGE9SQ0hFU1RSQVRJT05fQ0xJRU5UX0RFVhD2ARIYChNHT09HTEVf",
            "Tk9XX0xBVU5DSEVSEPcBEhsKFlNDT09CWV9TUEFNX1JFUE9SVF9MT0cQ+gES",
            "DwoKSU9TX0dST1dUSBD7ARIQCgtBUFBTX05PVElGWRD8ARIRCgxTTUFSVEtF",
            "WV9BUFAQjQISFQoQQ0xJTklDQUxfU1RVRElFUxCOAhIbChZGSVRORVNTX0FO",
            "RFJPSURfUFJJTUVTEI8CEhQKC0lNUFJPVl9BUFBTEJACGgIIARIPCgpGQU1J",
            "TFlMSU5LEJECEhgKE0ZBTUlMWUxJTktfQ09VTlRFUlMQkgISDAoHU09DSUVU",
            "WRCTAhIaChVESUFMRVJfQU5EUk9JRF9QUklNRVMQlQISGQoUWU9VVFVCRV9E",
            "SVJFQ1RPUl9BUFAQlgISGwoWVEFDSFlPTl9BTkRST0lEX1BSSU1FUxCXAhIX",
            "ChJUQUNIWU9OX0lPU19QUklNRVMQhQUSDQoIRFJJVkVfRlMQmAISDAoHWVRf",
            "TUFJThCZAhIkCh9XSU5HX01BUktFVFBMQUNFX0FORFJPSURfUFJJTUVTEJoC",
            "Eg0KCERZTkFNSVRFEJsCEhYKEUNPUlBfQU5EUk9JRF9GT09EEJwCEh0KGEFO",
            "RFJPSURfTUVTU0FHSU5HX1BSSU1FUxCdAhIVChBHUExVU19JT1NfUFJJTUVT",
            "EJ4CEiIKHUNIUk9NRUNBU1RfQU5EUk9JRF9BUFBfUFJJTUVTEKACEhQKD0NB",
            "U1RfSU9TX1BSSU1FUxDYAhIRCgxBUFBTVFJFQU1JTkcQoQISEAoLR01CX0FO",
            "RFJPSUQQogISFQoQVk9JQ0VfSU9TX1BSSU1FUxCkAhIZChRWT0lDRV9BTkRS",
            "T0lEX1BSSU1FUxClAhIKCgVQQUlTQRCmAhIgChtOQVpERUVLX1VTRVJfQU5E",
            "Uk9JRF9QUklNRVMQuwISHwoaTkFaREVFS19DQUJfQU5EUk9JRF9QUklNRVMQ",
            "vAISIAobTkFaREVFS19DQUZFX0FORFJPSURfUFJJTUVTEL0CEgwKB0dNQl9J",
            "T1MQpwISEwoOR01CX0lPU19QUklNRVMQxQISEgoNU0NPT0JZX0VWRU5UUxCo",
            "AhIYChNTTkFQU0VFRF9JT1NfUFJJTUVTEKkCEiAKG1lPVVRVQkVfRElSRUNU",
            "T1JfSU9TX1BSSU1FUxCqAhIVChBXQUxMUEFQRVJfUElDS0VSEKsCEiQKH1dB",
            "TExQQVBFUl9QSUNLRVJfQU5EUk9JRF9QUklNRVMQ0gMSCgoFQ0hJTUUQrAIS",
            "EQoMQkVBQ09OX0dDT1JFEK0CEhMKDkFORFJPSURfU1RVRElPEK4CEhEKDERP",
            "Q1NfT0ZGTElORRCyAhIOCglGUkVJR0hURVIQswISFAoPRE9DU19JT1NfUFJJ",
            "TUVTELQCEhYKEVNMSURFU19JT1NfUFJJTUVTELUCEhYKEVNIRUVUU19JT1Nf",
            "UFJJTUVTELYCEhMKDklQQ09OTkVDVElWSVRZELcCEgwKB0NVUkFUT1IQuAIS",
            "GwoWQ1VSQVRPUl9BTkRST0lEX1BSSU1FUxC+AhIgChtGSVRORVNTX0FORFJP",
            "SURfV0VBUl9QUklNRVMQvwISFAoPQU5EUk9JRF9NSUdSQVRFEMACEh4KGVBB",
            "SVNBX1VTRVJfQU5EUk9JRF9QUklNRVMQwQISIgodUEFJU0FfTUVSQ0hBTlRf",
            "QU5EUk9JRF9QUklNRVMQwgISGAoTQ0xJRU5UX0xPR0dJTkdfUFJPRBDHAhIc",
            "ChNDTElFTlRfTE9HR0lOR19ERU1PEMcCGgIIARIhChxMSVZFX0NIQU5ORUxT",
            "X0FORFJPSURfUFJJTUVTEMgCEhoKFVBBSVNBX1VTRVJfSU9TX1BSSU1FUxDJ",
            "AhIVChBWRVNQQV9JT1NfUFJJTUVTEMsCEhYKEVBMQVlfR0FNRVNfUFJJTUVT",
            "EMwCEhkKFEdNU0NPUkVfQVBJX0NPVU5URVJTEM0CEgoKBUVBUlRIEM4CEhMK",
            "DkVBUlRIX0NPVU5URVJTEJUDEhQKD0NBTEVOREFSX0NMSUVOVBDPAhIWChFT",
            "Vl9BTkRST0lEX1BSSU1FUxDQAhIWChFQSE9UT1NfSU9TX1BSSU1FUxDRAhIa",
            "ChVHQVJBR0VfQU5EUk9JRF9QUklNRVMQ0gISFgoRR0FSQUdFX0lPU19QUklN",
            "RVMQ0wISIAobU09DSUFMX0dPT0RfRE9OQVRJT05fV0lER0VUENQCEg4KCVNB",
            "TkRDTE9DSxDVAhITCg5JTUFHRVJZX1ZJRVdFUhDWAhIjCh5BRFdPUkRTX0VY",
            "UFJFU1NfQU5EUk9JRF9QUklNRVMQ1wISEgoNSU1QUk9WX1BPU1RJVBDZAhIT",
            "Cg5JTVBST1ZfU0hBUlBJRRDaAhIWChFEUkFQRVJfSU9TX1BSSU1FUxDbAhIN",
            "CghTTUFSVENBTRDcAhITCg5EQVNIRVJfVVNFUkhVQhDdAhIcChdBTkRST0lE",
            "X0NPTlRBQ1RTX1BSSU1FUxDeAhIeChlaQUdBVF9CVVJHVU5EWV9JT1NfUFJJ",
            "TUVTEN8CEiIKHVpBR0FUX0JVUkdVTkRZX0FORFJPSURfUFJJTUVTEOACEhgK",
            "E0NBTEVOREFSX0lPU19QUklNRVMQ4QISEgoNU1ZfSU9TX1BSSU1FUxDiAhIQ",
            "CgtTTUFSVF9TRVRVUBDjAhIZChRCT09ORF9BTkRST0lEX1BSSU1FUxDkAhIY",
            "ChNLT05HX0FORFJPSURfUFJJTUVTEOYCEhkKFENMQVNTUk9PTV9JT1NfUFJJ",
            "TUVTEOcCEhoKFVdFU1RJTkdIT1VTRV9DT1VOVEVSUxDoAhIVChBXQUxMRVRf",
            "U0RLX0dDT1JFEOkCEh8KGkFORFJPSURfSU1FX0FORFJPSURfUFJJTUVTEOoC",
            "EhwKF01FRVRJTkdTX0FORFJPSURfUFJJTUVTEOsCEhgKE01FRVRJTkdTX0lP",
            "U19QUklNRVMQ7AISEQoMV0VCX0NPTlRBQ1RTEO0CEhYKEUFEU19JTlRFR1JJ",
            "VFlfT1BTEO4CEgoKBVRPUEFaEO8CEh0KGENMQVNTUk9PTV9BTkRST0lEX1BS",
            "SU1FUxDxAhIQCgtUSFVOREVSQklSRBDyAhIQCgtQVUxQRklDVElPThDzAhIO",
            "CglPTkVHT09HTEUQ9QISDgoJVFJBTlNMQVRFEPcCEhoKFUxJRkVTQ0lFTkNF",
            "X0ZST05URU5EUxD4AhIeChlXQUxMUEFQRVJfUElDS0VSX0NPVU5URVJTEPkC",
            "EhkKFE1BR0lDVEVUSEVSX0NPVU5URVJTEPoCEhUKEFNPQ0lFVFlfQ09VTlRF",
            "UlMQ+wISDgoJVU5JQ09NTV9QEPwCEg4KCVVOSUNPTU1fUxD9AhIMCgdIQUxM",
            "V0FZEP4CEgsKBlNQQUNFUxD/AhIXChJUT09MS0lUX1FVSUNLU1RBUlQQgAMS",
            "HQoYQ0hBVUZGRVVSX0FORFJPSURfUFJJTUVTEIEDEhkKFENIQVVGRkVVUl9J",
            "T1NfUFJJTUVTEIIDEgkKBEZJRE8QgwMSGgoVTU9CRE9HX0FORFJPSURfUFJJ",
            "TUVTEIQDEhYKEU1PQkRPR19JT1NfUFJJTUVTEIUDEhMKDkFXWF9JT1NfUFJJ",
            "TUVTEIcDEhMKDkdIU19JT1NfUFJJTUVTEIgDEhUKEEJPT0tTX0lPU19QUklN",
            "RVMQiQMSCgoFTElOS1MQigMSFgoRS0FUTklQX0lPU19QUklNRVMQiwMSGQoU",
            "Qk9PS1NfQU5EUk9JRF9QUklNRVMQjQMSHAoXRFlOQU1JVEVfQU5EUk9JRF9Q",
            "UklNRVMQjgMSGAoTRFlOQU1JVEVfSU9TX1BSSU1FUxCPAxIVChBTSURFTE9B",
            "REVEX01VU0lDEJADEhYKEUNPUlBfQU5EUk9JRF9ET1JZEJEDEhgKE0NPUlBf",
            "QU5EUk9JRF9KRVRTRVQQkgMSFgoRVlJfU0RLX0lPU19QUklNRVMQkwMSGgoV",
            "VlJfU0RLX0FORFJPSURfUFJJTUVTEJQDEhMKDlBIT1RPU19TQ0FOTkVSEJYD",
            "Eg4KCUJHX0lOX09HQhCXAxIMCgdCTE9HR0VSEJgDEhIKDUNPUlBfSU9TX0ZP",
            "T0QQmQMSFgoRQkVBQ09OX0dDT1JFX1RFU1QQmgMSFQoQTElOS1NfSU9TX1BS",
            "SU1FUxCbAxIOCglDSEFVRkZFVVIQnAMSDQoIU05BUFNFRUQQnQMSGQoURUFS",
            "VEhfQU5EUk9JRF9QUklNRVMQngMSFwoSQ09SUF9BTkRST0lEX0FJVVRPEJ8D",
            "EhcKEkdGVFZfTU9CSUxFX1BSSU1FUxCgAxIOCglHTUFJTF9JT1MQoQMSGQoU",
            "VE9QQVpfQU5EUk9JRF9QUklNRVMQogMSFAoPU09DSUFMX0NPVU5URVJTEKQD",
            "EhYKEUNPUlBfQU5EUk9JRF9NT01BEKUDEhkKFE1FRVRJTkdTX0xPR19SRVFV",
            "RVNUEKYDEgoKBUdERUFMEKcDEg4KCUdPT0dMRVRUUxCoAxIeChlTRUFSQ0hM",
            "SVRFX0FORFJPSURfUFJJTUVTEKkDEhAKC05FQVJCWV9BVVRIEKoDEhsKFkNP",
            "UlBfQU5EUk9JRF9BU1NJU1RBTlQQqwMSGwoWRE1BR0VOVF9BTkRST0lEX1BS",
            "SU1FUxCsAxIWChFDT1JQX0FORFJPSURfR0JVUxCtAxIhChxZT1VUVUJFX1VO",
            "UExVR0dFRF9JT1NfUFJJTUVTEK4DEh0KGExFQU5CQUNLX0xBVU5DSEVSX1BS",
            "SU1FUxCvAxIPCgpEUk9JREdVQVJEELADEhIKDUNPUlBfSU9TX0RPUlkQsQMS",
            "IgodUExBWV9NVVNJQ19BTkRST0lEX0FQUF9QUklNRVMQsgMSHQoUR1BPU1Rf",
            "QU5EUk9JRF9QUklNRVMQtAMaAggBEhoKEUdQT1NUX0NMSUVOVF9MT0dTELUD",
            "GgIIARILCgZEUEFORUwQtgMSGwoWQURTRU5TRV9BTkRST0lEX1BSSU1FUxC3",
            "AxIRCgxQRE1fQ09VTlRFUlMQuAMSHAoXRU1FUkdFTkNZX0FTU0lTVF9QUklN",
            "RVMQuQMSEgoNQVBQU19URUxFUEFUSBC6AxIMCgdNRVRBTE9HELsDEhsKFlRF",
            "TEVDT01fUExBVEZPUk1fU1RBVFMQvAMSGAoTV0lGSV9QTEFURk9STV9TVEFU",
            "UxC9AxIMCgdHTUFfU0RLEL4DEhUKEEdNQV9TREtfQ09VTlRFUlMQvwMSJAof",
            "QU5EUk9JRF9DUkVBVElWRV9QUkVWSUVXX1BSSU1FUxDAAxIdChhURUxFUEhP",
            "TllfUExBVEZPUk1fU1RBVFMQwQMSFQoQVEVTVERSSVZFX1BSSU1FUxDCAxIV",
            "ChBDQVJSSUVSX1NFUlZJQ0VTEMMDEiEKHENMT1VEX0NPTlNPTEVfQU5EUk9J",
            "RF9QUklNRVMQxAMSEAoLU1RSRUVUX1ZJRVcQxQMSCQoEU1RBWBDGAxIdChhO",
            "RVdTU1RBTkRfQU5EUk9JRF9QUklNRVMQxwMSGQoUTkVXU1NUQU5EX0lPU19Q",
            "UklNRVMQiwUSDwoKUEFJU0FfVVNFUhDIAxIkCh9DQVJSSUVSX1NFUlZJQ0VT",
            "X0FORFJPSURfUFJJTUVTEMkDEiIKHUlQQ09OTkVDVElWSVRZX1BMQVRGT1JN",
            "X1NUQVRTEMwDEhYKEUZJUkVQRVJGX0FVVE9QVVNIEM0DEg0KCEZJUkVQRVJG",
            "EM4DEhwKF1pBR0FUX0lPU19BVVRIRU5USUNBVEVEEM8DEggKA1VMUhDQAxIf",
            "ChpQTEFZX01PVklFU19BTkRST0lEX1BSSU1FUxDTAxITCg5TTUFSVF9MT0NL",
            "X0lPUxDUAxIbChZaQUdBVF9JT1NfUFNFVURPTllNT1VTENUDEhMKDlRSQVZF",
            "TF9CT09LSU5HENYDEhkKFFdFU1RJTkdIT1VTRV9PRFlTU0VZENcDEhgKE0dN",
            "TV9XRUFSQUJMRV9QUklNRVMQ2AMSEwoOSFVERExFX0FORFJPSUQQ2QMSDQoI",
            "RExfRk9OVFMQ2gMSGAoTS0VFUF9BTkRST0lEX1BSSU1FUxDbAxIYChNDT1JQ",
            "X0FORFJPSURfQ0FNUFVTENwDEg8KClRBTkdPX0NPUkUQ3QMSFAoPUk9NQU5F",
            "U0NPX0dDT1JFEN4DEiEKHEFQUFNfVEVMRVBBVEhfQU5EUk9JRF9QUklNRVMQ",
            "3wMSGAoTUElHRU9OX0VYUEVSSU1FTlRBTBDgAxIdChhTUEVBS0VBU1lfQkFS",
            "S0VFUF9DTElFTlQQ4QMSHAoXQkFTRUxJTkVfQU5EUk9JRF9QUklNRVMQ4gMS",
            "GAoTVEFOR09fQ09SRV9DT1VOVEVSUxDjAxITCg5QSEVOT1RZUEVfREVNTxDk",
            "AxIJCgRZRVRJEOUDEhEKDFlFVElfU1RSRUFNWhCCBRIeChlUVlBSRVNFTkNF",
            "X0FORFJPSURfUFJJTUVTEOYDEhkKFExJTktTX0FORFJPSURfUFJJTUVTEOcD",
            "EgsKBkFMQkVSVBDoAxIOCglUT1BBWl9BUFAQ6QMSHAoXSUNFTlRSQUxfQU5E",
            "Uk9JRF9QUklNRVMQ6gMSGQoUQklTVE9fQU5EUk9JRF9QUklNRVMQ6wMSDQoI",
            "R0RFQUxfUUEQ7AMSFgoRQVRWX1JFTU9URV9QUklNRVMQ7wMSHgoZQVRWX1JF",
            "TU9URV9TRVJWSUNFX1BSSU1FUxDwAxILCgZCUkVMTEEQ8QMSEwoOQU5EUk9J",
            "RF9HUk9XVEgQ8gMSFAoPR0hTX0NMSUVOVF9MT0dTEPMDEhcKEkdPUl9BTkRS",
            "T0lEX1BSSU1FUxD0AxILCgZORVRSRUMQ9QMSFAoPTkVUUkVDX0NPVU5URVJT",
            "EPYDEhgKE0RBU0hFUl9BRE1JTkNPTlNPTEUQ9wMSGQoUU0VTQU1FX0NBTUVS",
            "QV9MQVVOQ0gQ+AMSHgoZR09PR0xFX1JFRF9BTkRST0lEX1BSSU1FUxD5AxIP",
            "CgpTRUFSQ0hMSVRFEPoDEhgKE0NPTlRBQ1RTX0FTU0lTVEFOVFMQ/AMSDAoH",
            "Q09OQ09SRBD9AxIaChVDQUxFTkRBUl9JT1NfQ09VTlRFUlMQ/gMSJAofUE9D",
            "S0VUV0FUQ0hfQU5EUk9JRF9XRUFSX1BSSU1FUxD/AxIZChRNWUFMT19BTkRS",
            "T0lEX1BSSU1FUxCABBIZChRBQ1RJVklUWV9SRUNPR05JVElPThCBBBIaChVW",
            "Ul9TVFJFQU1JTkdfQ09VTlRFUlMQggQSFQoQVE9QQVpfSU9TX1BSSU1FUxCF",
            "BBIPCgpORVdTX0VWRU5UEIYEEg8KCkNIUk9NT1RJTkcQhwQSGAoTQ0hST01P",
            "VElOR19DT1VOVEVSUxCIBBIaChVHTU1fV0VBUkFCTEVfQ09VTlRFUlMQiQQS",
            "IAobVlJfU1RSRUFNSU5HX0FORFJPSURfUFJJTUVTEIoEEhcKElJFQUNIQUJJ",
            "TElUWV9HQ09SRRCLBBIQCgtETUFHRU5UX0lPUxCMBBIXChJETUFHRU5UX0lP",
            "U19QUklNRVMQjQQSGQoUU0VTQU1FX1VOTE9DS19QUklNRVMQjgQSHAoXU0VT",
            "QU1FX1RSVVNUX0FQSV9QUklNRVMQjwQSCwoGR1NUT1JFEJAEEgwKB09QQV9J",
            "T1MQkQQSGgoVVlJDT1JFX0FORFJPSURfUFJJTUVTEJIEEgkKBE1PTUEQkwQS",
            "GwoWU0VTQU1FX1VOTE9DS19DT1VOVEVSUxCUBBIQCgtMQl9DT1VOVEVSUxCV",
            "BBISCg1EQVlEUkVBTV9IT01FEJYEEhcKEklOS19BTkRST0lEX1BSSU1FUxCX",
            "BBITCg5JTktfSU9TX1BSSU1FUxCYBBIVChBBU1NJU1RBTlRLSVRfSU9TEJkE",
            "EhsKFkNPUlBfSU9TX0xBVElPU19QUklNRVMQnAQSEAoLTUVESUFfU1RBVFMQ",
            "nQQSGgoVQ1JPTkVUX0FORFJPSURfUEhPVE9TEJ8EEgsKBkdXU19KUxCgBBIb",
            "ChZHV1NfSlNfQVVUSF9FWFBFUklNRU5UEOsEEh4KGUNBTENVTEFUT1JfQU5E",
            "Uk9JRF9QUklNRVMQoQQSEQoMR09PR0xFX01FRVRTEKMEEiMKHkVOVEVSUFJJ",
            "U0VfRU5ST0xMTUVOVF9DT1VOVEVSUxCkBBIJCgRHTlNTEKUEEgoKBVZJTUVT",
            "EKYEEhoKFUNBTUVSQV9BTkRST0lEX1BSSU1FUxCnBBIUCg9BTkRST0lEX1dF",
            "QlZJRVcQqAQSCwoGTkVBUkJZEKkEEhYKEVBSRURJQ1RfT05fREVWSUNFEKoE",
            "EhcKEk9BVVRIX0lOVEVHUkFUSU9OUxCrBBIaChVJTVBST1ZfQU5EUk9JRF9Q",
            "UklNRVMQrAQSHQoYR09PR0xFVFRTX0FORFJPSURfUFJJTUVTEK0EEhgKE0dO",
            "U1NfUExBVEZPUk1fU1RBVFMQrwQSFgoRQUNUSU9OU19PTl9HT09HTEUQsAQS",
            "GgoVR0JPQVJEX0FORFJPSURfUFJJTUVTELEEEhoKFU5BS1NIQV9BTkRST0lE",
            "X1BSSU1FUxCyBBITCg5QQUlTQV9DT1VOVEVSUxCzBBISCg1DT05TVEVMTEFU",
            "SU9OELQEEgwKB1pBTkRSSUEQtQQSFAoPQ09SUF9JT1NfTEFUSU9TELYEEiEK",
            "HERBWURSRUFNX0hPTUVfQU5EUk9JRF9QUklNRVMQtwQSGQoUVklTVUFMX1NF",
            "TUFOVElDX0xJRlQQuAQSFQoQVFJBVkVMX1ZBQ0FUSU9OUxC5BBIlCiBEQVlE",
            "UkVBTV9LRVlCT0FSRF9BTkRST0lEX1BSSU1FUxC6BBIWChFTTVNfU1lOQ19D",
            "T1VOVEVSUxC7BBIZChRDT1JQX0lPU19GT09EX1BSSU1FUxC8BBISCg1NT01B",
            "X0NPVU5URVJTEL0EEhgKE0JBU0VMSU5FX0lPU19QUklNRVMQvwQSFgoRQ0xF",
            "QVJDVVRfTE9HX0xPU1MQwAQSDQoIQklSRFNPTkcQwQQSEwoOT1BBX0lPU19Q",
            "UklNRVMQwgQSHQoYUFNFVURPTllNT1VTX0lEX0NPVU5URVJTEMMEEiMKHlBS",
            "T1hZX0NPTVBBTklPTl9BTkRST0lEX1BSSU1FUxDEBBILCgZJTUFHRVMQxQQS",
            "DQoIR1JFRU5URUEQxgQSGQoUQVVUT0ZJTExfV0lUSF9HT09HTEUQxwQSGwoW",
            "WkVCRURFRV9BTkRST0lEX1BSSU1FUxDIBBIWChFHQk9BUkRfSU9TX1BSSU1F",
            "UxDJBBIUCg9LRUVQX0lPU19QUklNRVMQygQSHQoYUk9ZQUxNSU5UX0FORFJP",
            "SURfUFJJTUVTEMsEEhUKEERSSVZFX0lPU19QUklNRVMQzAQSCwoGUkVWRUFM",
            "EM4EEhIKDVRSRU5EU19DTElFTlQQzwQSGwoWRklMRVNHT19BTkRST0lEX1BS",
            "SU1FUxDRBBISCg1QSVhFTF9IV19JTkZPENIEEhQKD0hFQUxUSF9DT1VOVEVS",
            "UxDTBBIPCgpXRUJfU0VBUkNIENQEEhUKEExJVFRMRUhVR19QRU9QTEUQ1QQS",
            "GwoWTVlHTEFTU19BTkRST0lEX1BSSU1FUxDWBBIKCgVUVVJCTxDXBBIQCgtB",
            "TkRST0lEX09UQRDYBBIXChJTRU5TRV9BTUJJRU5UTVVTSUMQ2QQSDgoJU0VO",
            "U0VfRE5EENoEEhEKDExJQkFTU0lTVEFOVBDbBBIMCgdTVFJFQU1aENwEEgoK",
            "BUVVSUNDEN0EEhMKDk1FRElDQUxfU0NSSUJFEN4EEhEKDENBTEVOREFSX0lP",
            "UxDfBBIKCgVBVURJVBDgBBIhChxFQVNFTF9TRVJWSUNFX0FORFJPSURfUFJJ",
            "TUVTEOEEEh8KGldISVNUTEVQVU5LX0FORFJPSURfUFJJTUVTEOIEEhsKFldI",
            "SVNUTEVQVU5LX0lPU19QUklNRVMQ4wQSDgoJRURHRV9QQ0FQEOQEEhMKDklD",
            "SU5HX0NPVU5URVJTEOUEEiAKG0JFQUNPTl9UT09MU19BTkRST0lEX1BSSU1F",
            "UxDmBBIcChdCRUFDT05fVE9PTFNfSU9TX1BSSU1FUxDnBBIVChBTQ09PQllf",
            "RVZFTlRfTE9HEOgEEhUKEEVBUlRIX0lPU19QUklNRVMQ6QQSEAoLWUVUSV9D",
            "TElFTlQQ6gQSHgoZR1JPV1RIX0NBVEFMT0dfSU9TX1BSSU1FUxDtBBIcChdB",
            "TkRST0lEX1NQRUVDSF9TRVJWSUNFUxDuBBIVChBLSURTX1NVUEVSVklTSU9O",
            "EO8EEiMKHkFEV09SRFNfRkxVVFRFUl9BTkRST0lEX1BSSU1FUxDyBBIfChpB",
            "RFdPUkRTX0ZMVVRURVJfSU9TX1BSSU1FUxDzBBIUCg9ISVJFX0lPU19QUklN",
            "RVMQ9AQSCwoGUlVOV0FZEPUEEg4KCVZSX1NPQ0lBTBD2BBIZChRUQVNLU19B",
            "TkRST0lEX1BSSU1FUxD3BBITCg5XRUFSX0NIQU1FTEVPThD4BBIVChBaRUJF",
            "REVFX0NPVU5URVJTEPkEEhUKEENBUlJJRVJfU0VUVElOR1MQ+gQSFQoQT05F",
            "R09PR0xFX01PQklMRRD7BBIYChNBTkRST0lEX1NNQVJUX1NIQVJFEPwEEhgK",
            "E0hJUkVfQU5EUk9JRF9QUklNRVMQ/QQSDQoIVlJfQ09NTVMQ/gQSFgoRR19T",
            "VUlURV9DT01QQU5JT04Q/wQSHQoYR01TQ09SRV9CQUNLRU5EX0NPVU5URVJT",
            "EIAFEhsKFk1VU1RBUkRfQU5EUk9JRF9QUklNRVMQgQUSHwoaVFZfTEFVTkNI",
            "RVJfQU5EUk9JRF9QUklNRVMQgwUSJgohVFZfUkVDT01NRU5EQVRJT05TX0FO",
            "RFJPSURfUFJJTUVTEIQFEhMKDkFQUFNfQVNTSVNUQU5UEIYFEhUKEENIUk9N",
            "RV9XRUJfU1RPUkUQhwUSEwoOU0VBUkNIX0NPTlNPTEUQiAUSDAoHWkVCRURF",
            "RRCJBRILCgZPUEFfVFYQigUSCgoFVEFTS1MQjAUSEAoLQVBQU19TRUFSQ0gQ",
            "jQUSEgoNQ0xFQVJDVVRfVEVTVBCOBRISCg1BU1NJU1RBTlRMSVRFEI8FEiEK",
            "HEFTU0lTVEFOVExJVEVfQU5EUk9JRF9QUklNRVMQkAUSCQoETVVTSxCRBRIQ",
            "CgtUVl9MQVVOQ0hFUhCSBRISCg1GT09EX09SREVSSU5HEJMFEg0KCFRBTEtC",
            "QUNLEJQFEhsKFkxPTkdGRUlfQU5EUk9JRF9QUklNRVMQlQUSIgodR01TQ09S",
            "RV9OT1RJRklDQVRJT05fQ09VTlRFUlMQlgUSCQoEU0FWRRCXBRIcChdNRUNI",
            "QUhBTVNURVJfSU9TX1BSSU1FUxCYBRIgChtHUlBDX0lOVEVST1BfQU5EUk9J",
            "RF9QUklNRVMQmQUSDwoKS0xPUEZLTE9QRhCaBRIcChdHUlBDX0lOVEVST1Bf",
            "SU9TX1BSSU1FUxCbBRIYChNDUk9ORVRfV0VTVElOR0hPVVNFEJwFEg8KCkNI",
            "Uk9NRVNZTkMQnQUSGAoTTkVUU1RBVFNfR01TX1BSRVYxNBCeBRIfChpDT1JQ",
            "X0FORFJPSURfTU9NQV9DTEVBUkNVVBCgBRIiCh1QSVhFTF9BTUJJRU5UX1NF",
            "UlZJQ0VTX1BSSU1FUxChBRIaChVTRVRUSU5HU19JTlRFTExJR0VOQ0UQogUS",
            "GgoVRklSRVBFUkZfSU5URVJOQUxfTE9XEKMFEhsKFkZJUkVQRVJGX0lOVEVS",
            "TkFMX0hJR0gQpAUSHwoaRVhQRURJVElPTlNfQU5EUk9JRF9QUklNRVMQpQUS",
            "EwoOTEFVTkNIRVJfU1RBVFMQpgUSEgoNWUVUSV9HVUVTVE9SQxCnBRISCg1N",
            "T1RJT05fU1RJTExTEKgFEh4KGUFTU0lTVEFOVF9DTElFTlRfQ09VTlRFUlMQ",
            "qQUSGwoWRVhQRURJVElPTlNfSU9TX1BSSU1FUxCqBRIjCh5HT09HTEVBU1NJ",
            "U1RBTlRfQU5EUk9JRF9QUklNRVMQqwUSDgoJQ0FNRVJBS0lUEKwFEhgKE0FO",
            "RFJPSURfT05CT0FSRF9XRUIQrQUSFQoQR0NPTk5FQ1RfVFVSTk9VVBCuBRIZ",
            "ChRWUjE4MF9BTkRST0lEX1BSSU1FUxCvBRIVChBWUjE4MF9JT1NfUFJJTUVT",
            "ELAFEhUKEExPTkdGRUlfQ09VTlRFUlMQsQUSKAojQ09OTkVDVElWSVRZX01P",
            "TklUT1JfQU5EUk9JRF9QUklNRVMQsgUSCwoGR1BQX1VJELMFEiMKHlBSSU1F",
            "U19JTlRFUk5BTF9BTkRST0lEX1BSSU1FUxC0BRINCghZRVRJX1BUUxC1BRIY",
            "ChNGQUNUX0NIRUNLX0VYUExPUkVSELYFEhUKEEFTU0lTVEFOVF9IUV9XRUIQ",
            "twUSEwoOWUVUSV9UTFNfUFJPWFkQuAUSDQoIR01BSUxfREQQuQUSGwoWS0hB",
            "WkFOQV9BTkRST0lEX1BSSU1FUxC6BRILCgZBUkNPUkUQvAUSHwoaR09PR0xF",
            "X1dJRklfQU5EUk9JRF9QUklNRVMQvQUSHAoXUFJPWElNSVRZX0FVVEhfQ09V",
            "TlRFUlMQvgUSIQocV0VBUl9LRVlCT0FSRF9BTkRST0lEX1BSSU1FUxC/BRIS",
            "Cg1TRUFSQ0hfT05fQk9REMAFEhkKFFNDT05FX0FORFJPSURfUFJJTUVTEMEF",
            "EhUKEE1PQklMRV9EQVRBX1BMQU4QwgUSCgoFVkVOVVMQxAUSDgoJSVBBX0dD",
            "T1JFEMYFEhoKFVRFVEhFUklOR19FTlRJVExFTUVOVBDHBRIfChpTRU1BTlRJ",
            "Q19MT0NBVElPTl9DT1VOVEVSUxDIBRIZChRUVVJCT19BTkRST0lEX1BSSU1F",
            "UxDJBRIcChdVU0VSX0xPQ0FUSU9OX1JFUE9SVElORxDKBRIUCg9GSVJFQkFT",
            "RV9NTF9TREsQywUSEQoMR09SX0NMRUFSQ1VUEMwFEhMKDldGQ19BQ1RJVkFU",
            "SU9OEM0FEhUKEFRBU0tTX0lPU19QUklNRVMQzgUSIAobV0lOR19PUEVOU0tZ",
            "X0FORFJPSURfUFJJTUVTEM8FEhIKDUNBUlJJRVJfU0VUVVAQ0AUSFAoPQVNT",
            "SVNUQU5UX1NIRUxMENEFEg8KCkFSQ09SRV9TREsQiggaAhABQgwKCmxvZ19z",
            "b3VyY2VKBAgBEAJKBAgPEBBKBAgGEAdKBAgHEAhKBAgFEAZKBAgOEA9KBAgJ",
            "EApKBAgKEAtKBAgLEAxKBAgMEA1KBAgNEA4iaQoLTG9nUmVzcG9uc2USJgoc",
            "bmV4dF9yZXF1ZXN0X3dhaXRfbWlsbGlzX3ZhbBgBIAEoA0gAQhoKGG5leHRf",
            "cmVxdWVzdF93YWl0X21pbGxpc0oECAIQA0oECAMQBEoECAQQBUoECAUQBkId",
            "qgIaR29vZ2xlQVJDb3JlSW50ZXJuYWwuUHJvdG9iBnByb3RvMw=="));
      descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
          new pbr::FileDescriptor[] { },
          new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] {
            new pbr::GeneratedClrTypeInfo(typeof(global::GoogleARCoreInternal.Proto.LogEvent), global::GoogleARCoreInternal.Proto.LogEvent.Parser, new[]{ "EventTimeMs", "EventUptimeMs", "SourceExtension", "TimezoneOffsetSecondsVal" }, new[]{ "TimezoneOffsetSeconds" }, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::GoogleARCoreInternal.Proto.LogRequest), global::GoogleARCoreInternal.Proto.LogRequest.Parser, new[]{ "RequestTimeMs", "RequestUptimeMs", "LogSourceVal", "LogEvent" }, new[]{ "LogSource" }, new[]{ typeof(global::GoogleARCoreInternal.Proto.LogRequest.Types.LogSource) }, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::GoogleARCoreInternal.Proto.LogResponse), global::GoogleARCoreInternal.Proto.LogResponse.Parser, new[]{ "NextRequestWaitMillisVal" }, new[]{ "NextRequestWaitMillis" }, null, null)
          }));
    }
    #endregion

  }
  #region Messages
  public sealed partial class LogEvent : pb::IMessage<LogEvent> {
    private static readonly pb::MessageParser<LogEvent> _parser = new pb::MessageParser<LogEvent>(() => new LogEvent());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pb::MessageParser<LogEvent> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::GoogleARCoreInternal.Proto.ArcoreClearcutReflection.Descriptor.MessageTypes[0]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public LogEvent() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public LogEvent(LogEvent other) : this() {
      eventTimeMs_ = other.eventTimeMs_;
      eventUptimeMs_ = other.eventUptimeMs_;
      sourceExtension_ = other.sourceExtension_;
      switch (other.TimezoneOffsetSecondsCase) {
        case TimezoneOffsetSecondsOneofCase.TimezoneOffsetSecondsVal:
          TimezoneOffsetSecondsVal = other.TimezoneOffsetSecondsVal;
          break;
      }

      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public LogEvent Clone() {
      return new LogEvent(this);
    }

    public const int EventTimeMsFieldNumber = 1;
    private long eventTimeMs_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public long EventTimeMs {
      get { return eventTimeMs_; }
      set {
        eventTimeMs_ = value;
      }
    }

    public const int EventUptimeMsFieldNumber = 17;
    private long eventUptimeMs_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public long EventUptimeMs {
      get { return eventUptimeMs_; }
      set {
        eventUptimeMs_ = value;
      }
    }

    public const int SourceExtensionFieldNumber = 6;
    private pb::ByteString sourceExtension_ = pb::ByteString.Empty;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public pb::ByteString SourceExtension {
      get { return sourceExtension_; }
      set {
        sourceExtension_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    public const int TimezoneOffsetSecondsValFieldNumber = 15;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public long TimezoneOffsetSecondsVal {
      get { return timezoneOffsetSecondsCase_ == TimezoneOffsetSecondsOneofCase.TimezoneOffsetSecondsVal ? (long) timezoneOffsetSeconds_ : 0L; }
      set {
        timezoneOffsetSeconds_ = value;
        timezoneOffsetSecondsCase_ = TimezoneOffsetSecondsOneofCase.TimezoneOffsetSecondsVal;
      }
    }

    private object timezoneOffsetSeconds_;
    public enum TimezoneOffsetSecondsOneofCase {
      None = 0,
      TimezoneOffsetSecondsVal = 15,
    }
    private TimezoneOffsetSecondsOneofCase timezoneOffsetSecondsCase_ = TimezoneOffsetSecondsOneofCase.None;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public TimezoneOffsetSecondsOneofCase TimezoneOffsetSecondsCase {
      get { return timezoneOffsetSecondsCase_; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void ClearTimezoneOffsetSeconds() {
      timezoneOffsetSecondsCase_ = TimezoneOffsetSecondsOneofCase.None;
      timezoneOffsetSeconds_ = null;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override bool Equals(object other) {
      return Equals(other as LogEvent);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public bool Equals(LogEvent other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (EventTimeMs != other.EventTimeMs) return false;
      if (EventUptimeMs != other.EventUptimeMs) return false;
      if (SourceExtension != other.SourceExtension) return false;
      if (TimezoneOffsetSecondsVal != other.TimezoneOffsetSecondsVal) return false;
      if (TimezoneOffsetSecondsCase != other.TimezoneOffsetSecondsCase) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override int GetHashCode() {
      int hash = 1;
      if (EventTimeMs != 0L) hash ^= EventTimeMs.GetHashCode();
      if (EventUptimeMs != 0L) hash ^= EventUptimeMs.GetHashCode();
      if (SourceExtension.Length != 0) hash ^= SourceExtension.GetHashCode();
      if (timezoneOffsetSecondsCase_ == TimezoneOffsetSecondsOneofCase.TimezoneOffsetSecondsVal) hash ^= TimezoneOffsetSecondsVal.GetHashCode();
      hash ^= (int) timezoneOffsetSecondsCase_;
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void WriteTo(pb::CodedOutputStream output) {
      if (EventTimeMs != 0L) {
        output.WriteRawTag(8);
        output.WriteInt64(EventTimeMs);
      }
      if (SourceExtension.Length != 0) {
        output.WriteRawTag(50);
        output.WriteBytes(SourceExtension);
      }
      if (timezoneOffsetSecondsCase_ == TimezoneOffsetSecondsOneofCase.TimezoneOffsetSecondsVal) {
        output.WriteRawTag(120);
        output.WriteSInt64(TimezoneOffsetSecondsVal);
      }
      if (EventUptimeMs != 0L) {
        output.WriteRawTag(136, 1);
        output.WriteInt64(EventUptimeMs);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int CalculateSize() {
      int size = 0;
      if (EventTimeMs != 0L) {
        size += 1 + pb::CodedOutputStream.ComputeInt64Size(EventTimeMs);
      }
      if (EventUptimeMs != 0L) {
        size += 2 + pb::CodedOutputStream.ComputeInt64Size(EventUptimeMs);
      }
      if (SourceExtension.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeBytesSize(SourceExtension);
      }
      if (timezoneOffsetSecondsCase_ == TimezoneOffsetSecondsOneofCase.TimezoneOffsetSecondsVal) {
        size += 1 + pb::CodedOutputStream.ComputeSInt64Size(TimezoneOffsetSecondsVal);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(LogEvent other) {
      if (other == null) {
        return;
      }
      if (other.EventTimeMs != 0L) {
        EventTimeMs = other.EventTimeMs;
      }
      if (other.EventUptimeMs != 0L) {
        EventUptimeMs = other.EventUptimeMs;
      }
      if (other.SourceExtension.Length != 0) {
        SourceExtension = other.SourceExtension;
      }
      switch (other.TimezoneOffsetSecondsCase) {
        case TimezoneOffsetSecondsOneofCase.TimezoneOffsetSecondsVal:
          TimezoneOffsetSecondsVal = other.TimezoneOffsetSecondsVal;
          break;
      }

      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(pb::CodedInputStream input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 8: {
            EventTimeMs = input.ReadInt64();
            break;
          }
          case 50: {
            SourceExtension = input.ReadBytes();
            break;
          }
          case 120: {
            TimezoneOffsetSecondsVal = input.ReadSInt64();
            break;
          }
          case 136: {
            EventUptimeMs = input.ReadInt64();
            break;
          }
        }
      }
    }

  }

  public sealed partial class LogRequest : pb::IMessage<LogRequest> {
    private static readonly pb::MessageParser<LogRequest> _parser = new pb::MessageParser<LogRequest>(() => new LogRequest());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pb::MessageParser<LogRequest> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::GoogleARCoreInternal.Proto.ArcoreClearcutReflection.Descriptor.MessageTypes[1]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public LogRequest() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public LogRequest(LogRequest other) : this() {
      requestTimeMs_ = other.requestTimeMs_;
      requestUptimeMs_ = other.requestUptimeMs_;
      logEvent_ = other.logEvent_.Clone();
      switch (other.LogSourceCase) {
        case LogSourceOneofCase.LogSourceVal:
          LogSourceVal = other.LogSourceVal;
          break;
      }

      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public LogRequest Clone() {
      return new LogRequest(this);
    }

    public const int RequestTimeMsFieldNumber = 4;
    private long requestTimeMs_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public long RequestTimeMs {
      get { return requestTimeMs_; }
      set {
        requestTimeMs_ = value;
      }
    }

    public const int RequestUptimeMsFieldNumber = 8;
    private long requestUptimeMs_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public long RequestUptimeMs {
      get { return requestUptimeMs_; }
      set {
        requestUptimeMs_ = value;
      }
    }

    public const int LogSourceValFieldNumber = 2;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public global::GoogleARCoreInternal.Proto.LogRequest.Types.LogSource LogSourceVal {
      get { return logSourceCase_ == LogSourceOneofCase.LogSourceVal ? (global::GoogleARCoreInternal.Proto.LogRequest.Types.LogSource) logSource_ : 0; }
      set {
        logSource_ = value;
        logSourceCase_ = LogSourceOneofCase.LogSourceVal;
      }
    }

    public const int LogEventFieldNumber = 3;
    private static readonly pb::FieldCodec<global::GoogleARCoreInternal.Proto.LogEvent> _repeated_logEvent_codec
        = pb::FieldCodec.ForMessage(26, global::GoogleARCoreInternal.Proto.LogEvent.Parser);
    private readonly pbc::RepeatedField<global::GoogleARCoreInternal.Proto.LogEvent> logEvent_ = new pbc::RepeatedField<global::GoogleARCoreInternal.Proto.LogEvent>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public pbc::RepeatedField<global::GoogleARCoreInternal.Proto.LogEvent> LogEvent {
      get { return logEvent_; }
    }

    private object logSource_;
    public enum LogSourceOneofCase {
      None = 0,
      LogSourceVal = 2,
    }
    private LogSourceOneofCase logSourceCase_ = LogSourceOneofCase.None;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public LogSourceOneofCase LogSourceCase {
      get { return logSourceCase_; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void ClearLogSource() {
      logSourceCase_ = LogSourceOneofCase.None;
      logSource_ = null;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override bool Equals(object other) {
      return Equals(other as LogRequest);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public bool Equals(LogRequest other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (RequestTimeMs != other.RequestTimeMs) return false;
      if (RequestUptimeMs != other.RequestUptimeMs) return false;
      if (LogSourceVal != other.LogSourceVal) return false;
      if(!logEvent_.Equals(other.logEvent_)) return false;
      if (LogSourceCase != other.LogSourceCase) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override int GetHashCode() {
      int hash = 1;
      if (RequestTimeMs != 0L) hash ^= RequestTimeMs.GetHashCode();
      if (RequestUptimeMs != 0L) hash ^= RequestUptimeMs.GetHashCode();
      if (logSourceCase_ == LogSourceOneofCase.LogSourceVal) hash ^= LogSourceVal.GetHashCode();
      hash ^= logEvent_.GetHashCode();
      hash ^= (int) logSourceCase_;
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void WriteTo(pb::CodedOutputStream output) {
      if (logSourceCase_ == LogSourceOneofCase.LogSourceVal) {
        output.WriteRawTag(16);
        output.WriteEnum((int) LogSourceVal);
      }
      logEvent_.WriteTo(output, _repeated_logEvent_codec);
      if (RequestTimeMs != 0L) {
        output.WriteRawTag(32);
        output.WriteInt64(RequestTimeMs);
      }
      if (RequestUptimeMs != 0L) {
        output.WriteRawTag(64);
        output.WriteInt64(RequestUptimeMs);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int CalculateSize() {
      int size = 0;
      if (RequestTimeMs != 0L) {
        size += 1 + pb::CodedOutputStream.ComputeInt64Size(RequestTimeMs);
      }
      if (RequestUptimeMs != 0L) {
        size += 1 + pb::CodedOutputStream.ComputeInt64Size(RequestUptimeMs);
      }
      if (logSourceCase_ == LogSourceOneofCase.LogSourceVal) {
        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) LogSourceVal);
      }
      size += logEvent_.CalculateSize(_repeated_logEvent_codec);
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(LogRequest other) {
      if (other == null) {
        return;
      }
      if (other.RequestTimeMs != 0L) {
        RequestTimeMs = other.RequestTimeMs;
      }
      if (other.RequestUptimeMs != 0L) {
        RequestUptimeMs = other.RequestUptimeMs;
      }
      logEvent_.Add(other.logEvent_);
      switch (other.LogSourceCase) {
        case LogSourceOneofCase.LogSourceVal:
          LogSourceVal = other.LogSourceVal;
          break;
      }

      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(pb::CodedInputStream input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 16: {
            logSource_ = input.ReadEnum();
            logSourceCase_ = LogSourceOneofCase.LogSourceVal;
            break;
          }
          case 26: {
            logEvent_.AddEntriesFrom(input, _repeated_logEvent_codec);
            break;
          }
          case 32: {
            RequestTimeMs = input.ReadInt64();
            break;
          }
          case 64: {
            RequestUptimeMs = input.ReadInt64();
            break;
          }
        }
      }
    }

    #region Nested types
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static partial class Types {
      public enum LogSource {
        [pbr::OriginalName("ARCORE_SDK")] ArcoreSdk = 1034,
      }

    }
    #endregion

  }

  public sealed partial class LogResponse : pb::IMessage<LogResponse> {
    private static readonly pb::MessageParser<LogResponse> _parser = new pb::MessageParser<LogResponse>(() => new LogResponse());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pb::MessageParser<LogResponse> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::GoogleARCoreInternal.Proto.ArcoreClearcutReflection.Descriptor.MessageTypes[2]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public LogResponse() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public LogResponse(LogResponse other) : this() {
      switch (other.NextRequestWaitMillisCase) {
        case NextRequestWaitMillisOneofCase.NextRequestWaitMillisVal:
          NextRequestWaitMillisVal = other.NextRequestWaitMillisVal;
          break;
      }

      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public LogResponse Clone() {
      return new LogResponse(this);
    }

    public const int NextRequestWaitMillisValFieldNumber = 1;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public long NextRequestWaitMillisVal {
      get { return nextRequestWaitMillisCase_ == NextRequestWaitMillisOneofCase.NextRequestWaitMillisVal ? (long) nextRequestWaitMillis_ : 0L; }
      set {
        nextRequestWaitMillis_ = value;
        nextRequestWaitMillisCase_ = NextRequestWaitMillisOneofCase.NextRequestWaitMillisVal;
      }
    }

    private object nextRequestWaitMillis_;
    public enum NextRequestWaitMillisOneofCase {
      None = 0,
      NextRequestWaitMillisVal = 1,
    }
    private NextRequestWaitMillisOneofCase nextRequestWaitMillisCase_ = NextRequestWaitMillisOneofCase.None;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public NextRequestWaitMillisOneofCase NextRequestWaitMillisCase {
      get { return nextRequestWaitMillisCase_; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void ClearNextRequestWaitMillis() {
      nextRequestWaitMillisCase_ = NextRequestWaitMillisOneofCase.None;
      nextRequestWaitMillis_ = null;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override bool Equals(object other) {
      return Equals(other as LogResponse);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public bool Equals(LogResponse other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (NextRequestWaitMillisVal != other.NextRequestWaitMillisVal) return false;
      if (NextRequestWaitMillisCase != other.NextRequestWaitMillisCase) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override int GetHashCode() {
      int hash = 1;
      if (nextRequestWaitMillisCase_ == NextRequestWaitMillisOneofCase.NextRequestWaitMillisVal) hash ^= NextRequestWaitMillisVal.GetHashCode();
      hash ^= (int) nextRequestWaitMillisCase_;
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void WriteTo(pb::CodedOutputStream output) {
      if (nextRequestWaitMillisCase_ == NextRequestWaitMillisOneofCase.NextRequestWaitMillisVal) {
        output.WriteRawTag(8);
        output.WriteInt64(NextRequestWaitMillisVal);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int CalculateSize() {
      int size = 0;
      if (nextRequestWaitMillisCase_ == NextRequestWaitMillisOneofCase.NextRequestWaitMillisVal) {
        size += 1 + pb::CodedOutputStream.ComputeInt64Size(NextRequestWaitMillisVal);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(LogResponse other) {
      if (other == null) {
        return;
      }
      switch (other.NextRequestWaitMillisCase) {
        case NextRequestWaitMillisOneofCase.NextRequestWaitMillisVal:
          NextRequestWaitMillisVal = other.NextRequestWaitMillisVal;
          break;
      }

      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(pb::CodedInputStream input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 8: {
            NextRequestWaitMillisVal = input.ReadInt64();
            break;
          }
        }
      }
    }

  }

  #endregion

}

#endregion Designer generated code
